#ifndef BLOGITEMWIDGET_H
#define BLOGITEMWIDGET_H

#define CoverWidth 140
#define CoverHeight 105

#include <QWidget>
#include <QLabel>
#include <QHBoxLayout>
#include <QMouseEvent>
#include "dataModel/BlogPreview.h"

class BlogItemWidget : public QWidget
{
    Q_OBJECT
public:
    explicit BlogItemWidget(
        QWidget *parent = nullptr,
        const QString &title = "文章标题",
        const QString &summary = "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要"
                                 "文章摘要文章摘要文章摘要文章摘要文章摘要...",
        const QString &author = "作者 脸滚键盘1201",
        const QString &time = "更新时间 2025.7.4",
        int readCount = 0,
        int likeCount = 0,
        int commentCount = 0,
        int favoriteCount = 0,
        const QPixmap &cover = QPixmap(":/other/resoures/other/defaultCover.png"));

    void setTitle(const QString &title);
    void setSummary(const QString &summary);
    void setAuthor(const QString &author);
    void setUpdateTime(const QString &time);
    void setReadCount(int count);
    void setLikeCount(int count);
    void setCommentCount(int count);
    void setFavoriteCount(int count);
    void setCover(const QPixmap &cover);
    void quickSetup(const BlogPreview &blogPreview);

private:
    QLabel *titleLabel;         // 标题
    QLabel *summaryLabel;       // 摘要
    QLabel *authorLabel;        // 作者
    QLabel *timeLabel;          // 更新时间
    QLabel *readCountLabel;     // 阅读数
    QLabel *likeCountLabel;     // 点赞数
    QLabel *commentCountLabel;  // 评论数
    QLabel *favoriteCountLabel; // 收藏数
    QLabel *coverLabel;         // 封面

    QHBoxLayout *mainLayout;  // 主布局：封面 + 右侧内容
    QVBoxLayout *textLayout;  // 右侧文本布局
    QHBoxLayout *statsLayout; // 统计信息行

protected:
    void mousePressEvent(QMouseEvent *event) override; // 重写鼠标按下事件

signals:
    void openDetailPage();
};

#endif // BLOGITEMWIDGET_H
